This invention relates to bar code scanning.
In bar code scanning systems, a light beam is scanned across a bar code symbol, and reflected light is collected, using either retroreflective or non-retroreflective light collection.
In retroreflective light collection, a single optical component, e.g., a rotating mirror, as described in Krichever et al. U.S. Pat. No. 4,816,661 or Shepard et al. U.S. Pat. No. 4,409,470, both herein incorporated by reference, scans the beam across a target surface and directs the collected light to a detector. The rotating mirror must be relatively large to receive the incoming light, but only a small detector is required because the rotating mirror can focus the light on to a small area. As a result, the detector has a relatively small field of view, which increases signal-to-noise ratio.
In non-retroreflective light collection, the reflected laser light is not collected by the same rotating mirror used for scanning. Instead, the detector is constructed to have a large field of view so that the reflected laser light traces across the surface of the detector. Because the rotating mirror need only handle the outgoing light beam, it can be made much smaller. But the detector must be relatively large in order to receive the incoming light beam from all scanned locations.
It has become increasingly desirable not only to increase the scanning rate of bar code scanners (e.g., to increase the throughput of scanned items), but also to increase the signal-to-noise ratio of bar code scanners to accommodate the increasing information density stored in bar code labels.
In recent years, there have been increasing demands for storing more information in a bar code label. In particular, there is a desire to create a "portable data file", as opposed to the "license plate" nature of conventional bar code symbols. For example, a typical UPC bar code only contains the manufacturer's code and the item number. The price look-up must be accessed in a database keyed to the item number in the bar code. Alternatively, a two-dimensional bar code could be used to store all of the relevant information, such as price, the name of the product, manufacturer, weight, inventory data, and expiration date. This would constitute a "portable data file" because the information could be retrieved without access to a database. While a price look-up database file is conveniently available in a retail environment, this may not be the case in other applications.
Although two-dimensional bar code schemes do not have vertical redundancy, they incorporate other forms of redundancy as well as other advantages, while increasing the density of information storage. For example, Code PDF417 allows stitching of partial scans, error detection, and error correction.